package cn.djb.day10;


/**
 * 给定一个数字，我们按照如下规则把它翻译为字符串：0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法。
 */
class Solution_1 {

    public int translateNum(int num) {
        int count = 1;

        char[] chars = String.valueOf(num).toCharArray();
        int length = chars.length;
        if (length == 0) return count;
        // q: n-1 p :n-2
        int q = 1, p = 1;
        for (int i = 1; i < length; i++) {
            char font = chars[i - 1];
            StringBuilder numStr = new StringBuilder().append(font).append(chars[i]);
            Integer temp = Integer.valueOf(numStr.toString());

            if (temp <= 25 && temp >= 10) {
                count = q + p;
            }else {
                count = q;
            }
            p = q;
            q = count;
        }

        return count;

    }

    public static void main(String[] args) {
        Solution_1 solution_1 = new Solution_1();
        int i = solution_1.translateNum(18822);
        System.out.println(i);
    }

}